<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of AuthModel
 *
 * @author ngh
 */
class AuthModel extends Model{
    
    private $table = 'users';
    
    public function __construct() {
        parent::__construct();
        
    }
    /**
     * Получает объект юзера по логину
     * @param type $user_login
     * @return boolean 
     */
    public function getUserDataByLogin($user_login){
        $query = $this->db->query("SELECT * FROM " . $this->table . " WHERE user_login='" . mysql_real_escape_string($user_login) . "' LIMIT 1");
        $data = $this->db->fetch($query);
        if(!empty($data)) 
            return $data;
        else
            return FALSE;
    }
    /**
     * Получает объект юзера по id
     * @param type $user_id
     * @return boolean 
     */
    public function getUserDataById($user_id) {
        
        $query = $this->db->query("SELECT * FROM " . $this->table . " WHERE user_id='" . intval($user_id) . "' LIMIT 1");
        $data = mysql_fetch_assoc($query);

        if(!empty($data)) 
            return $data;
        else
            return FALSE;
    }
    /**
     * проверяет есть ли юзер с заданным id в базе
     * @param type $user_id
     * @return boolean 
     */
    public function hasUserInBaseById($user_id) {
         $query = $this->db->query("SELECT COUNT(user_id) FROM " . $this->table . " WHERE user_id='" . intval($user_id) . "'");
            if (mysql_result($query, 0) > 0)    
                    return TRUE; 
                    else  
                    return FALSE;
    }
    /**
     * проверяет есть ли такой юзер по его логину
     * @param type $user_login
     * @return boolean 
     */
    public function hasUserInBase($user_login) {
         $query = $this->db->query("SELECT COUNT(user_id) FROM " . $this->table . " WHERE user_login='" . mysql_real_escape_string($user_login) . "'");
            if (mysql_result($query, 0) > 0)    
                    return TRUE; 
                    else  
                    return FALSE;
    }
    /**
     * добавляет юзера в бд
     * @param type $login
     * @param type $password
     * @return type 
     */
    public function addUser($login, $password) {
        $this->db->query("INSERT INTO " . $this->table . " SET user_login='" . $login . "', user_password='" . $password . "'");
        return $this->db->getLastId();
    }
    /**
     * Обновление профайла по id 
     * @param type $data
     * @param type $user_id
     * @return type 
     */
    public function updateUserPassword($password, $user_id) { 
        return $this->db->query("UPDATE " . $this->table . " SET user_password = '".$password."' WHERE user_id = '".$user_id."'");
    }  
    /**
     * обновление хэша и ip юзера, использвется успешном логине
     * @param type $hash
     * @param type $ip
     * @param type $user_id 
     */
    public function updateUserHashAndIP($hash, $ip, $user_id) {
         $this->db->query("UPDATE " . $this->table . " SET user_hash='" . $hash . "'" . $ip . " WHERE user_id='" . intval($user_id) . "'");
    }
    
    public function updateUserDataId($user_id, $data_id)
    {
        $this->db->query("UPDATE " . $this->table . " SET user_data_id = '" . $data_id . "' where user_id = '" . intval($user_id) . "'");
    }
    
}

?>
